草庐IT

C++ 风格约定 : Parameter Names within Class Declaration

全部标签

c++ - 如果存在则使用它/检测 C++ 中当前作用域的调用约定(thiscall vs cdecl)

我正在尝试编写一个健壮的宏,它将在thiscall和cdecl调用约定中工作,但如果“this”存在(thiscall),则利用“this”获取更多信息。这可能吗?这是一个不起作用的例子:#definePRINT_IF_THIS_EXISTS\if(this)printf("this(addr%08x)existsin%s!\n",size_t(this),__FUNCTION__)structMyStruct{voidMyFunc(){PRINT_IF_THIS_EXISTS;}};voidStaticFunc(){PRINT_IF_THIS_EXISTS;MyStructms;ms

c++ - 如何为 GSL(GNU 科学图书馆)改编 C++ 风格的随机数引擎?

我有一个满足C++随机数引擎要求的PRNG,如所述here.(它来自PCGfamily)。也就是说,C++标准库分发类可以使用该引擎的一个实例来生成随机数:pcg_extras::seed_seq_fromseed_source;pcg32rng(seed_source);std::uniform_real_distributionuniformDist(0.,1.);doublerandomNumber=uniformDist(rng);我需要从中未包含的分布生成样本,所以我需要使用GSL中的函数。为此,我如何使用我的C++引擎?GSLrng函数都需要constgsl_rng*作为第

c++ - 使用 boost 的 Glob 风格正则表达式模式匹配

我需要搜索与某些模式匹配的文件,该模式类似于使用boost在glob命令行中给出的模式。例如:如果输入是myFiles*.c,它应该匹配文件myFiles.c、myFiles1.c、myFiles123.c等。尝试在perl模式下使用boost::regex_match。但我必须将输入模式作为myfiles.*.c而不是myFiles*.c。我可以识别myfiles*.c并将其转换为myFiles.*.c并在perl模式下将其提供给boost::regex_match。但是输入模式可以是glob样式中的任何有效正则表达式,因为它是为命令行实用程序提供的。在boost中有什么方法可以以g

SpringMVC零基础入门 - 概述、入门搭建、PostMan的使用(常见数据类型的传输)、REST风格编程

SpringMVC零基础入门-概述、入门搭建、PostMan的使用(常见数据类型的传输)、REST风格编程SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。SSM整合:SpringMVC+Spring+Mybatis整合在一起,三个框架的一个综合应用。文章目录SpringMVC零基础入门-概述、入门搭建、PostMan的使用(常见数据类型的传输)、R

c++ - 是否有打印可选值的约定?

假设我想重载operator对于optional类模板。我将如何打印“缺失值”,以及如何打印“真实值”x?nonesomex或[][x]或者我应该为第一种情况和x不打印任何内容吗?第二个?这通常是如何处理的? 最佳答案 我喜欢打印None和Somex的选项。我认为这立即描述了正在发生的事情(特别是对于熟悉Haskell的人)。就个人而言,我不会使用[]和[x]替代方案,因为许多语言使用方括号来表示某种列表。如果我看到该输出,我会立即认为打印了一个列表,而不是可选类型。 关于c++-是否有

C++如何使用不支持的调用约定调用代码

我有一个x86DLL(我没有源代码),我需要从C++程序(VC++10)调用它。我被告知调用约定是从左到右,前三个参数在EAX、ECX和EDX寄存器中传递,被调用者堆栈清理(以及浮点参数/返回等其他细节)。是否有某种方法可以自动执行此操作(例如,从包含数百个函数定义中的每一个的文件生成,或者甚至更好地“告诉”编译器有关约定)以便我可以正常调用这些函数?如果有帮助,所使用的类型都是很好的简单类型(void、int、char*、float等)。 最佳答案 我将从查看libffi开始. 关于C

c# - .NET 或 C++ 中的 Erlang 风格并发

在许多项目之后,单向异步消息传递似乎是编写并发分布式网络服务并保持理智的唯一方法。我正在寻找一个简单的、最好是开源的.NET或C++库来实现类似于ErlangOTP平台的异步消息传递概念。到目前为止,我只发现RetLang有点相似,但是它不支持通过网络传递消息,并且好像被遗弃了。我还评估了TPL、TPLDataFlow和RxLib。他们都不支持我正在寻找的东西。在C++世界中,我只关注了Boost。"ConciseexplanationofErlang-styleconcurrency"欢迎任何指点! 最佳答案 看看0MQ,它有几乎

c++ - WinRT/Metro 风格应用程序中基于 ATL 的 COM 对象

场景:我正在尝试将C++应用程序迁移到WinRT/MetroStyle。此应用程序使用ATL/COM对象,该对象通过类IDispatchImpl实现IDispatch接口(interface)但是,根据MSDNIDispatchImpl不适用于MetroStyle应用程序。我的ATL/COM类如下所示:classMyATLClass:publicIDispatchImpl,publicCComObjectRoot,publicCComCoClass{...}问题:WinRT中是否有IDispatchImpl的替代品?例如,替换可能涉及派生自不同的类并丢弃我的IDL文件。我的最终目标只是

c++ - 简单的 C 风格结构化输入的 Spirit Qi 解析问题

我正在尝试为一些使用熟悉且非常简单的“C风格”格式的游戏数据设置基本解析器。基本上,命名支撑的“结构”,然后将参数和嵌套的“结构”放入其中。它会解析这样的东西:Name0{Name1{Param0*=2Param2="lol"}Param0=1Param1="test"Name2{}}Name3{Param0="test"}但是,即使是简单的“Test{}”输入测试,它也失败了,更不用说像我上面的例子那样高级了。这些结构设置为使用fusion,这看起来很简单,我怀疑这是问题所在。我目前没有使用一些规则,而且我的大部分规则都未经测试,因为它在root中尝试第一个category规则时失败

c++ - C 风格使用现代 C++ 类

我有这样一个类:片段1:structB{intmember;//morecomplexmemberse.g.arraysofstructsetc};假定它是C风格的结构(例如用于memcpy、memset等)作为良好编程原则的一部分,我正在考虑像这样修改B:片段2structB{B(){}intmember;//morecomplexmemberse.g.arraysofstructsetc};这是我的理解。如果我弄错了请更正一种。代码段1定义了B,它是一个POD,而代码段2定义了B,它不是一个POD,并且b.在片段2中,B仍然可以合法地用于C风格的用途,例如memset和memcpy